// 1. 引入express
const express = require('express')

// 2. 创建应用对象
const app = express()

// 3. 配置路由
// 配置路由参数: 路径后面直接写/:参数名
// 注意: 默认路由参数是必填项. 如果不填,则无法和当前路由匹配.express就会响应客户端说没有这个路径
// 如果路由参数后面加了?,则表示这个参数是一个可选参数,可以不传
// 注意: 查询字符串和路由参数,都只支持get请求.不支持post请求
app.get('/xxx/:name/:age?', (req, res) => {
  // req请求对象
  // res响应对象
  res.send(`你好,世界,${req.query}`) // 注意: 我们使用模板字符串进行拼接,会自动对对象进行toString,所以要看数据应该使用JSON.stringify
  // res.send(`你好,世界,${JSON.stringify(req.query)}`) // 获取查询字符串,拿到但是一个对象
  // res.send(`你好,世界,${JSON.stringify(req.query)}`) // 获取查询字符串,拿到但是一个对象
  // 注意: 路由参数必须要先配置,然后再传递
  res.send(`你好,世界,${JSON.stringify(req.params)}`) // 获取查询字符串,拿到但是一个对象
})

app.post('/xxx', (req, res) => {
  // req.get用来获取请求头信息
  // res.send('hello word' + req.get('origin'))
  console.log(req.body) // 注意:req.body确实是用来获取请求主体数据的,但是此时还无法正常获取.因为需要配合后面才讲中间件
  res.send('响应了') // 获取请求主体的数据
})

// 4. 启动服务器
app.listen(5000, (error) => {
  if (error) console.log('服务器启动失败', error)
  else console.log('服务器启动成功')
})
